The growing popularity of XML (Extensible Markup Language) paves the way for increased usage of service registries. A registry in general pertains to a central location where information can be registered, stored and looked up. A service registry is essentially a database of information about services. The information may be as simple as mappings from high level abstract names to hard-wired network addresses, or as complex as invocation, network management policy and security data. Typically, service registries contain fine-grained information about enterprise-specific services without spanning organizational boundaries. For web services, however, service registries promote service discovery and integration across enterprises. Web service registries are unique in that in addition to searching data contained in the actual database entries (as a traditional database is searched), one can also exploit the fact that these databases contain URLs (Uniform Resource Locators) that could be taken into account when identifying and ranking potential matches.
In this regard, the Universal Description Discovery and Integration (UDDI) project offers a platform-independent, open framework for describing services, discovering businesses, and integrating business services using the Internet. UDDI is designed to support the discovery of external (outside a company) service information while other mechanisms, such as JNDI™ (Java Naming and Directory Interface), Microsoft Active Directory™, etc., may be used to discover internal service information, i.e. information about services within a company. UDDI registries publish and discover information about web services. Web services may be broadly described as applications capable of executing transactions via the Internet, Web service generally refers to specific business functionality exposed by a company to provide a way for another company or software program to use the service.
A UDDI registry (also called a UDDI repository) provides a standard mechanism to classify, catalog, and manage information about web services so that the services can be discovered and used. UDDI registries are intended to enable businesses and providers to perform tasks such as:                finding web service implementations that are based on a common abstract interface definition;        finding web service providers that are classified according to a known classification schema or identifier system;        determining the security and transport protocols supported by a given web service;        issuing a search request for services based on a general keyword;        caching technical information about a web service and then updating the cached information at runtime, etc.        
The two main components of UDDI are the UDDI information model and the UDDI API set. Each UDDI registry consists of one or more UDDI nodes that collectively manage a particular set of UDDI data. Each UDDI node comprises a set of web services supporting standard set of services and APIs. The UDDI specification defines six node API sets (UDDI Inquiry, UDDI Publication, UDDI Security, UDDI Custody Transfer, UDDI Subscription, and UDDI Replication), as well as two client API (application program interface) sets (UDDI Subscription Listener and UDDI Value Set). Each set of web services supports at least one of the node API sets.
The UDDI information model is composed of instances of persistent data structures called entities. There are six fundamental types of UDDI entities:                businessEntity: Describes a business or other organization that typically provides web services (e.g., contact information).        businessService: Describes a collection of related web services offered by an organization described by a businessEntity.        bindingTemplate: Describes the technical information necessary to use a particular web service.        tModel: Describes a “technical model” representing a reusable concept, such as a web service type, a protocol used by web services, or a category system.        publisherAssertion: Describes, in the view of one businessEntity, the relationship that the businessEntity has with another businessEntity.        subscription: Describes a standing request to keep track of changes to the entities described by the subscription.        
A UDDI business registry typically offers both a web-based user interface and a programmatic interface. Any kind of service can be registered in the UDDI business registry, such as electronic and/or non-electronic services, with the primary intent behind the UDDI project being to provide a global registry (or registry) for services. The UDDI registry thus has database-like properties (because it has a data schema and can be searched like a database), as well as web-like properties (because it can refer to URLs which may contain links to and be linked to by other URLs).
Existing UDDI search mechanisms use unwieldy and constrained query techniques that require manual traversal of internal registry data structures. Much work has been done in the area of web search engines, XML database queries, collaborative filtering and data mining. However, UDDI registries do not currently implement systems that leverage known techniques from the areas of data mining and collaborative filtering to improve the ranking of search results.
Data mining deals generally with analysis of data to identify patterns and establish relationships. Typical data mining techniques include identifying associations, sequence or path analysis, classification (looking for new patterns), clustering (identifying and documenting new groups of facts), etc. More information on data mining may be found, for example, in J. Han and M. Kamber's “Data Mining: Concepts and Techniques”, Morgan Kauffmann Publishers, 2001.
Collaborative filtering may be defined as a set of software tools that leverage user preferences, patterns, and purchasing behavior to customize organization and navigation systems. Known collaborative filtering programs include, for example, Marcomedia's LikeMinds™, beFree's BSELECT T, etc. Essentially, collaborative filtering automates the recommendation of information to people based on the opinions of other people. More information on collaborative filtering may be found, for example, in a publication by D. Goldberg, D Nichols, B. M. Oki, and D. Terry entitled “Using Collaborative Filtering to Weave an Information Tapestry”, CACM 35(12), 61-70, December 1992. Collaborative filtering, however, is not being used to search service registries. For example, Http://www.soapclient.com/uddisearch.htrnl and http://test.uddi.microsoft.com/search.aspx each provide UDDI search engines which require users to specify which UDDI data structures are being searched. These two UDDI search engines do not search URLs referenced from within the data entries or support collaborative filtering.